
18.01.2017, 18:38
|
Интересующийся
|
|
Регистрация: 11.11.2014
Сообщений: 28
|
|
AJAX массив цикл
Доброго времени суток. Прошу помощи. Не могу вывести весь массив, выводиться только последняя запись.
ajax.js
$(function(){
var output = $('#output');
$('#my_form').on('submit', function(e){
e.preventDefault();
var $that = $(this),
formData = $that.serializeArray();
// ИЛИ
// formData = $that.serialize();
$.ajax({
url: $that.attr('action'),
type: $that.attr('method'),
dataType: 'json',
data: {form_data: formData},
beforeSend: function(){
output.text('Передача данных. Ждите ответа.');
},
error: function(req, text, error){
output.text('Ошибка. ' + text + ' | ' + error);
},
complete: function(){
output.append('<p>Запрос полностью завершен.</p>');
},
[B] success: function(json){
while(){
output.html(json);[/B]
}
}
});
});
});
php.php
<?php
include ("db.php");
if(isset($_POST['form_data'])){
$req = false;
$array = $_POST['form_data'];
$namedatepostupleniya = $array['0'];
$datepostupleniya = $namedatepostupleniya['value'];
$namedateizgotovleniya = $array['1'];
$dateizgotovleniya = $namedateizgotovleniya['value'];
$nameizgotovitel = $array['2'];
$izgotovitel = $nameizgotovitel['value'];
$namefrakciyax = $array['3'];
$frakciyax = $namefrakciyax['value'];
$namefrakciyay = $array['4'];
$frakciyay = $namefrakciyay['value'];
$nameliniya = $array['5'];
$liniya = $nameliniya['value'];
$namepartiya = $array['6'];
$partiya = $namepartiya['value'];
$namemaster = $array['7'];
$master = $namemaster['value'];
$namegost = $array['8'];
$gost = $namegost['value'];
$nametu = $array['9'];
$tu = $nametu['value'];
$namemkr = $array['10'];
$mkr = $namemkr['value'];
$paket = mysql_query("SELECT * FROM `kachestvopostupleniesirca` WHERE datepostupleniya='".$datepostupleniya."' and partiya='".$partiya."'");
while($res = mysql_fetch_assoc($paket)){
$tert = $res['datepostupleniya']." ".$res['partiya'] ." ".$res['mkr'];
}
echo json_encode($tert);
exit();
}
?>
<div class='output' id='output'></div>
|
|

18.01.2017, 19:55
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Офигеть от имен переменных! Язык не ломается от них? ) И нахрена их столько, причем из пустого в порожнее, к тому же есть list().
А это WHERE datepostupleniya='".$datepostupleniya."' - 100% sql инъекция.
while(){
output.html(json);
}
это как? json - это объект, а не строка, while() уже глупость.
|
|

18.01.2017, 20:33
|
Интересующийся
|
|
Регистрация: 11.11.2014
Сообщений: 28
|
|
Сообщение от laimas
|
Офигеть от имен переменных! Язык не ломается от них? ) И нахрена их столько, причем из пустого в порожнее, к тому же есть list().
|
много данных приходит из формы и записывается в бд. Всё они необходимы. нужно выводить в ту же форму, только ниже то что записалось бд.
|
|

18.01.2017, 20:40
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Для того чтобы записать данные в базу совсем не требуется такое
$array = $_POST['form_data'];
а затем непонятная свистопляска
$namedatepostupleniya = $array['0'];
$datepostupleniya = $namedatepostupleniya['value'];
....
|
|

18.01.2017, 20:51
|
Интересующийся
|
|
Регистрация: 11.11.2014
Сообщений: 28
|
|
Сообщение от laimas
|
Для того чтобы записать данные в базу совсем не требуется такое
|
if(isset($_POST['form_data'])){
$req = false;
$array = $_POST['form_data'];
$namedatepostupleniya = $array['0'];
$datepostupleniya = $namedatepostupleniya['value'];
$namedateizgotovleniya = $array['1'];
$dateizgotovleniya = $namedateizgotovleniya['value'];
$nameizgotovitel = $array['2'];
$izgotovitel = $nameizgotovitel['value'];
$namefrakciyax = $array['3'];
$frakciyax = $namefrakciyax['value'];
$namefrakciyay = $array['4'];
$frakciyay = $namefrakciyay['value'];
$nameliniya = $array['5'];
$liniya = $nameliniya['value'];
$namepartiya = $array['6'];
$partiya = $namepartiya['value'];
$namemaster = $array['7'];
$master = $namemaster['value'];
$namegost = $array['8'];
$gost = $namegost['value'];
$nametu = $array['9'];
$tu = $nametu['value'];
$namemkr = $array['10'];
$mkr = $namemkr['value'];
$nameplotnost = $array['11'];
$plotnost = $nameplotnost['value'];
$namegranulomsostavplus = $array['12'];
$granulomsostavplus = $namegranulomsostavplus['value'];
$namegranulomsostavplusosnovnayafrakciya = $array['13'];
$granulomsostavplusosnovnayafrakciya = $namegranulomsostavplusosnovnayafrakciya['value'];
$namegranulomsostavminus = $array['14'];
$granulomsostavminus = $namegranulomsostavminus['value'];
$namepil = $array['15'];
$pil = $namepil['value'];
$namevlazhnost = $array['16'];
$vlazhnost = $namevlazhnost['value'];
$nameprochnoct = $array['17'];
$prochnoct = $nameprochnoct['value'];
$namesferichost = $array['18'];
$sferichost = $namesferichost['value'];
$nameokruglost = $array['19'];
$okruglost = $okruglost['value'];
$namezakluchenie = $array['20'];
$zakluchenie = $namezakluchenie['value'];
$nameocenka = $array['21'];
$ocenka = $nameocenka['value'];
$kontroler = $_SESSION["login"];
$ip= $_SERVER["REMOTE_ADDR"];
$date = date("Y-m-d H:i:s", strtotime("+2 hours"));
$timesystem = date("H", strtotime("+2 hours"));
if (($timesystem >= "8") and ($timesystem <= "19")) $rabvremya = "8:00-20:00";
if (($timesystem >= "20") and ($timesystem <= "23") or ($timesystem >= "0") and ($timesystem <= "7")) $rabvremya = "20:00-8:00";
$datesystem= date("Y-m-d", strtotime("+2 hours"));
$sum = $granulomsostavplus + $granulomsostavplusosnovnayafrakciya + $granulomsostavminus + $pil;
if (($sum >= "100.44") or ($partiya == "0") or ($mkr == "0") or ($plotnost == "0") or ($granulomsostavplus == "0") or ($granulomsostavplusosnovnayafrakciya == "0") or ($granulomsostavminus == "0") or ($pil == "0") or ($vlazhnost == "0") or ($prochnoct == "0") or ($sferichost == "0") or ($okruglost == "0")){
$result = "<font color='red'><b>Ошибка. Данные не сохранены.<br> Некорректно введены данные.</b></font>";
echo json_encode($result);
exit();
}
$sqla = mysql_query("SELECT * FROM `kachestvopostupleniesirca` WHERE datepostupleniya='".$datepostupleniya."' and dateizgotovleniya='".$dateizgotovleniya."' and izgotovitel='".$izgotovitel."' and partiya='".$partiya."' and frakciyax='".$frakciyax."' and frakciyay='".$frakciyay."' and liniya='".$liniya."' and mkr='".$mkr."'");
$resa = mysql_fetch_array($sqla);
if (($datepostupleniya == $resa["datepostupleniya"]) and ($dateizgotovleniya == $resa["dateizgotovleniya"]) and ($izgotovitel == $resa["izgotovitel"]) and ($partiya == $resa["partiya"]) and ($frakciyax == $resa["frakciyax"]) and ($frakciyay == $resa["frakciyay"]) and ($liniya == $resa["liniya"]) and ($mkr == $resa["mkr"])){
$result = "<font color='red'><b>Ошибка. Данные не сохранены.<br> Такие данные уже имеются в базе.</b></font>";
echo json_encode($result);
exit();
}
else{
$query="INSERT INTO `kachestvopostupleniesirca` VALUES( NULL, '".$date."', '".$ip."', '".$datepostupleniya."', '".$dateizgotovleniya."', '".$izgotovitel."', '".$frakciyax."', '".$frakciyay."', '".$liniya."', '".$partiya."', '".$master."', '".$gost."', '".$tu."', '".$mkr."', '".$plotnost."', '".$granulomsostavplus."', '".$granulomsostavplusosnovnayafrakciya."', '".$granulomsostavminus."', '".$pil."', '".$vlazhnost."', '".$prochnoct."', '".$sferichost."', '".$okruglost."', '".$zakluchenie."', '".$ocenka."', '".$kontroler."', '".$rabvremya."')";
mysql_query($query);
}
|
|

19.01.2017, 05:24
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Просто ужасная хрень, причем дырявая на все 100.
|
|

19.01.2017, 12:27
|
Интересующийся
|
|
Регистрация: 11.11.2014
Сообщений: 28
|
|
laimas,
эта хрень работает в локалке. согласен не лучший вариант, но мне надо чтобы работала. а потом со временем всё сделаю. причём эта хрень работает с сессиями и куки.
нашёл решение - работает.
Последний раз редактировалось Денис_кам-ур, 19.01.2017 в 13:14.
|
|

19.01.2017, 15:08
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Денис_кам-ур
|
эта хрень работает в локалке.
|
Не дай бог еще и на удаленном сервере такое. В этом коде 80% чистого мусора, а дыр 100%.
|
|

19.01.2017, 15:39
|
Интересующийся
|
|
Регистрация: 11.11.2014
Сообщений: 28
|
|
Сообщение от laimas
|
Не дай бог еще и на удаленном сервере такое. В этом коде 80% чистого мусора, а дыр 100%.
|
дыр в смысле про sql инъекции ? там есть проверка, нет куки, exit и редирект на index.php
это лишь часть кода.
кому интересно как это выглядит ....

Последний раз редактировалось Денис_кам-ур, 19.01.2017 в 15:51.
|
|

19.01.2017, 15:51
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Какая проверка? Не видно ничего, нет и экранирования. Зачем такая хрень как
$namegranulomsostavplusosnovnayafrakciya = $array['13'];
$granulomsostavplusosnovnayafrakciya = $namegranulomsostavplusosnovnayafrakciya['value'];
чем портянка $namegranulomsostavplusosnovnayafrakciya лучше $array['13']['value']?
Зачем вообще такие дикие переменные и формирование имен полей формы так, чтобы потом так все выковыривать?
Не код, а жуть.
|
|
|
|